1. Technical Field
The present invention is generally directed to an improved computing system. More specifically, the present invention is directed to a topological best match naming convention apparatus and method for use in testing graphical user interfaces.
2. Description of Related Art
To ensure that applications perform and operate as expected, they need to be tested prior to release. Such testing involves the adoption of a test management strategy followed by the performance of load testing and functional testing on the applications. Load testing involves the emulation of multiple users interacting with an application infrastructure to ascertain where any bottlenecks may exist. Functional testing involves automatically capturing, verifying and replaying user interactions to determine if the applications function as expected.
A known mechanism for performing functional tests on applications is the WinRunner program available from Mercury Interactive. With the WinRunner program, test scripts are generated by recording a user's interaction with a particular version of an application's graphical user interface (GUI). The recording is then later replayed to test the application, or other versions of the application, with different data sets. Reports are generated indicating the events occurring during the test and any errors that may occur.
The most difficult problem for a GUI test harness, e.g., the tool (e.g., WinRunner) used to run a group of test scripts to test the functionality of the GUI, is being able to generate a unique and repeatable name (from build to build and run to run) that the user can use to identify which GUI components the user wishes to inspect or manipulate. The problem lies in that not every control has something unique about it that does not vary from run to run or is guaranteed to not change in the next build. Thus, for example, if a test script is recorded for version 1.00 of a GUI application and the test script is then used to verify the functionality of version 1.05 of the GUI application, the GUI objects present in version 1.00 may not be present in version 1.05 or may be in different locations from the version with which the test script was generated.
For example, assume that a graphical user interface consists of five buttons and the test case calls for the selection of the fourth button. This seems to be a straight forward test situation. However, what happens when the order of the buttons changes between the time the test case is written and the time that it is actually implemented? Now it is not certain which button should be selected. This is because the control that is intended to be invoked through the selection of the fourth button will now not be invoked if the fourth button is selected in the modified GUI. In other words, the control that is intended to be invoked is independent of the GUI object's location and its surroundings.
Thus, it would be beneficial to have an apparatus and method that is capable of uniquely identifying the control desired by a GUI test script even if the build of the GUI application has been modified from when the test script was generated.